package com.iplant.basic.service.basicenum.bpm;

import com.iplant.base.po.enums.BaseEnum;

public enum BPMEventModule implements BaseEnum {
    /**
     * 默认
     */
    Default(0, "默认"),
    /**
     * 人员资质
     */
    PersonQualificationAudit(1001, "人员资质"),
    /**
     * 故障检修
     */
    FaultBaseAudit(1002, "故障检修"),
    /**
     * 月计划审批
     */
    MONTH_PLAN_AUDIT(1003, "月计划审批"),
    /**
     * 周计划审批
     */
    WEEK_PLAN_AUDIT(1004, "周计划审批"),
    /**
     * 派工
     */
    DISPATCH(1005, "派工"),
    /**
     * 自检
     */
    SELF_CHECK(1006, "自检"),
    /**
     * 互检
     */
    MUTUAL_CHECK(1007, "互检"),
    /**
     * 专检
     */
    SPECIAL_CHECK(1008, "专检"),

    /**
     * 故障知识库维护
     */
    FaultBaseRepairAudit(1009, "故障知识库维护"),
    /**
     * 来料检验
     */
    MaterialCheck(1011, "来料检验"),
    /**
     * 异常处理
     */
    Exception_HANDLE(2001, "异常处理"),
    /**
     * 开工检查
     */
    START_CHECK(3001, "开工检查"),
    /**
     * 工艺路线审批
     */
    BOP_AUDIT(4001, "工艺路线审批"),
    /**
     * 不合格评审
     */
    NCR(5001, "不合格评审");

    private int value;
    private String label;
    private String remark;

    BPMEventModule(int value, String label) {
        this.value = value;
        this.label = label;
    }

    BPMEventModule(int value, String label, String remark) {
        this.value = value;
        this.label = label;
        this.remark = remark;
    }

    /**
     * 通过 value 的数值获取枚举实例
     */
    public static BPMEventModule getEnumType(int val) {
        for (BPMEventModule type : BPMEventModule.values()) {
            if (type.getValue() == val) {
                return type;
            }
        }
        return Default;
    }

    @Override
    public int getValue() {
        return value;
    }

    @Override
    public void setValue(int value) {
        this.value = value;
    }

    @Override
    public String getLabel() {
        return label;
    }

    @Override
    public void setLabel(String label) {
        this.label = label;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }
}
